const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
})
process.env.VUE_APP_VERSION = require('./package.json').version
const os = require('os');

function getNetworkIp () {
  let needHost = ''; // 打开的host
  try {
    // 获得网络接口列表
    let network = os.networkInterfaces();
    // console.log("network",network)
    for (let dev in network) {
      let iface = network[dev];
      for (let i = 0; i < iface.length; i++) {
        let alias = iface[i];
        if (alias.family === 'IPv4' && alias.address !== '127.0.0.1' && !alias.internal) {
          needHost = alias.address;
          // console.log("alias.address", alias.address)
        }
        // console.log("alias", alias)
      }
    }
  } catch (e) {
    needHost = 'localhost';
  }
  // window.localStorage.setItem('ippppppp', needHost);
  return needHost;
}


// process.env.VUE_APP_IP = getNetworkIp()


// 自定义环境变量全局使用
// process.env.VUE_APP_MAC = mac
// process.env.VUE_APP_IP = ip
// process.env.VUE_APP_IPP = networkInterfaces



module.exports = {
  publicPath: './', // 基本路径
  outputDir: 'dist', // 构建时的输出目录
  assetsDir: 'static', // 放置静态资源的目录
  indexPath: 'index.html', // html 的输出路径
  filenameHashing: true, // 文件名哈希值
  lintOnSave: false, // 是否在保存的时候使用 `eslint-loader` 进行检查。

  // 组件是如何被渲染到页面中的？ （ast：抽象语法树；vDom：虚拟DOM）
  // template ---> ast ---> render ---> vDom ---> 真实的Dom ---> 页面
  // runtime-only：将template在打包的时候，就已经编译为render函数
  // runtime-compiler：在运行的时候才去编译template
  runtimeCompiler: false,

  transpileDependencies: [], // babel-loader 默认会跳过 node_modules 依赖。
  productionSourceMap: false, // 是否为生产环境构建生成 source map
  //调整内部的 webpack 配置
  configureWebpack: () => { },

  chainWebpack: () => {

  },

  // 配置 webpack-dev-server 行为。
  devServer: {
    open: false, // 编译后默认打开浏览器
    host: getNetworkIp(), // 域名
    port: 8080, // 端口
    https: false, // 是否https
    allowedHosts: 'all',
  },
}